/*
 *    Copyright © OpenAtom Foundation.
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *         http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */

package com.inspur.edp.cef.variable.dtgenerator.core.rtgenerator.entity.data;

import com.inspur.edp.cef.designtime.api.IGspCommonDataType;
import com.inspur.edp.cef.gencommon.MediateType;
import com.inspur.edp.cef.generator.coreGenerator.base.accessorgen.NestedAcsGenerator;
import com.inspur.edp.cef.generator.coreGenerator.base.entitygen.EntityGeneratorContext;

public class VariableAcsGenerator extends NestedAcsGenerator
{
	public VariableAcsGenerator(EntityGeneratorContext parContext, IGspCommonDataType node, MediateType targetInterfaceType)
	{
		super(parContext,node, node.getCode(), targetInterfaceType);
	}

	//protected override void AddAcsExtendMethod(List<ClassMethodGenerator> methodGens)
	//{
	//    base.AddAcsExtendMethod(methodGens);
	//    methodGens.Add(new CopySelfGenerator());
	//}

	////public virtual ICefData CopySelf() => InnerData?.CopySelf();
	//public class CopySelfGenerator : ClassMethodGenerator
	//{
	//    protected override BlockSyntax BuildMethodBody() =>
	//        SyntaxFactory.Block(
	//            SyntaxFactory.SingletonList<StatementSyntax>(
	//                SyntaxFactory.ReturnStatement(
	//                    SyntaxFactory.IdentifierName("InnerData"))));

	//    protected override List<MethodAccessModifier> GetAccessModifiers() =>
	//        new List<MethodAccessModifier> { MethodAccessModifier.Public, MethodAccessModifier.Override };

	//    protected override string GetMethodName() => "CopySelf";

	//    protected override List<ParameterGenerateInfo> GetParameterCollection() =>
	//        new List<ParameterGenerateInfo>();

	//    protected override Type GetReturnType() => typeof(ICefData);
	//}
}
